iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
Software Development

數位醫療與雲原生第一次的親密接觸系列 第 14

Day 14 [數位醫療] 容器魔術師 --萬物皆可dockerize

  • 分享至 

  • xImage
  •  

Docker 是一種開源的容器化平台,允許開發者和運維人員打包應用程式及其所有依賴項,並將其放在「容器」中,這樣就可以確保應用程式在不同的環境中一致地運行。Docker有非常多的優點,包含跨平台運行、快速部署與縮放(scalable)、可移植性與靈活性、強大的開源社群支持。因此我平常開發時也經常使用到這項技術,尤其是跨平台運行的特性,更是能確保服務的穩定,不會因為在不同環境下就不能運行。搭配上Kubernetes更是能建立起一套優秀的服務及服務管理工具。

以下會介紹如何將Springboot服務打包成docker。

  1. 在專案裡新增一個Dockerfile

Dockerfile

FROM openjdk:11-jre-slim
COPY ./target/*.jar /Documents/docker/demo.jar
WORKDIR /Documents/docker
RUN sh -c 'touch demo.jar'
ENTRYPOINT ["java","-jar","demo.jar"]

Tips:
這個Dockerfile的base image是openjdk:11-jre-slim。將打包好的jar檔放在base image的/Documents/docker/ 下,並將jar檔命名為demo.jar,最後執行demo.jar。

  1. 將開發好的服務打包為jar檔

使用IntelliJ IDEA側邊的Maven工具進行打包,點選install即可完成打包jar檔,可至target目錄下查看。

https://ithelp.ithome.com.tw/upload/images/20240922/20161987i9fXtHt4qK.png

  1. Build image

到Dockerfile存放目錄下執行指令

docker build -t test .

-t 後接的為image的名稱

成功執行後可下指令查看是否有成功建立image

docker image ls -a

或是直接安裝Docker Desktop(滿好用的,推薦安裝)進行查看

docker執行服務

docker run -p ${host port}:${container port} image_name

host port為本機上的port,container port為container要映射出來的port,假設這個被打包的springboot服務是運行在8080 port上,那container port就應該是8080 port。

以上是簡單的Springboot服務打包成docker並執行的教學,下一篇會介紹特殊的Dockerfile(先前提到的multi-frame dicom轉換服務,使用了opencv函式庫)。


上一篇
Day 13 [數位醫療] 從零開始手搓multi-frame dicom
下一篇
Day 15 [數位醫療] Dockerize multi-frame dicom轉換服務
系列文
數位醫療與雲原生第一次的親密接觸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言